1. The Field of the Invention
The present invention generally relates to visual code designers. More particularly, the present invention relates to extensible user interface feedback during the positioning of control components to assist a user in aligning the components on a common design surface.
2. Background and Relevant Art
Visual code designers are software engineering tools that increase productivity by simplifying user interface (UI) development and maintenance. A visual code designer simplifies the coding of complex UI applications by providing the user with building blocks (or controls) representing UI components. These building blocks are manipulated by a user on a common design surface into a cohesive UI, thereby allowing a smaller workforce to develop large amounts of UI software in shorter time periods. Further, a visual code designer enhances usability by providing a development team with a prototype so that proposed UI changes can be readily demonstrated for validation and acceptance. This aspect can decrease the turnaround time for making UI changes in development and maintenance phases.
FIG. 1(a) illustrates typical basic building blocks of a Visual Code Designer 100 during design-time. A common Design Surface 105 is provided for allowing the designer to manipulate various objects provided from Palette or Toolbox 145. For example, a designer wishing to have Button 150, Check Box 165 and Scroll Bars 175 and 185 as part of an application would simply position the control objects onto the Design Surface 105 by, for example, using a mouse and separately dragging each component onto the Design Surface 105. The user can then manipulate these controls in any fashion desirable.
In order to give a systematic and organized appearance, it has become standard practice to align the physical edges of most components with other physical edges. Typically, visual designers will provide grids (e.g., dots 110, lines, etc.) to assist in aligning components with one another. These types of visual code designers, however, have several shortcomings. For example, the design-time UI within the visual code designer will often differ from the corresponding run-time UI. More particularly, the design-time UI displays a grid for laying out object controls, while the run-time UI does not. As such, the design-time grid does not give a user a true visual experience of how the UI will appear during run-time.
Another shortcoming of typical visual designers is the difficulty associated with aligning controls in a desirable fashion. For example, current designers do not allow an extensible way for aligning text within boxes of varying size or aligning text in boxes of the same size with varying font. Further, current visual designers make it difficult to align the centers or other desired alignment positions for controls of varying sizes and types.
FIG. 1(a) and FIG. 1(b) illustrates an example of the problem with current visual designers when aligning various objects. Referring to FIG. 1(a), during design-time use of Visual Code Designer 100, Text Field 115, Static Text Box 120, Spinner 125, Static Text Box 130 and Dials 135 and 140 have been inserted and aligned in accordance with standard practice using typical Grid Dots 110 on Design Surface 105. As shown in FIG. 1(b), however, during Run-time 190 the alignment of the objects appears if they were randomly placed onto the common Design Surface 105. For example, because Static Text Box 120 is larger in size than Text Field Box 115, the text in Text Field 115 does not line up with the text in Static Text Box 120. Similarly, because Spinner's 125 font size is larger than the font size of Static Text Box 130, the number in Spinner 125 does not line up with the text from Static Text Box 130. A similar problem exists with Dials 135 and 140, which are not properly aligned due to their differing sizes. Although current visual code designers allow for the spacing of the grid dots to be adjusted, the design surface still only allows aligning controls to gridlines rather than to other controls.
Accordingly, there exists a need for methods, systems and computer program products that provide for an extensible UI feedback during the positioning of components by automatically aligning components with other components without the use of gridlines.